package cn.lycode.generator.domian.entity;

import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * 代码生成业务表字段
 * </p>
 */
@Data
public class GeneratorTableColumn implements Serializable {

    {
        //防止往数据库插入的值为null，导致代码生成模板渲染有问题
        isPk = "0";
        isIncrement = "0";
        isRequired = "0";
        isInsert = "0";
        isEdit = "0";
        isList = "0";
        isQuery = "0";
        isAutofill = "0";
        isUniqueValid = "0";
        isLogicDel = "0";
        isImport = "0";
        isExport = "0";
    }

    private static final long serialVersionUID = 1L;
    private Long columnId; //主键id
    private Long tableId; //归属表编号
    private String columnName; //列名称
    private String columnComment; //列描述
    private String columnType; //列类型
    private String javaType; //JAVA类型 （String、Integer、Long、Double、BigDecimal、
    //搜索类型(input、input-number、select、select-v2、tree-select、cascader、date-picker、time-picker、time-select、switch、slider)
    private String searchType;
    private String tsType;//ts类型 (string、number、string[])
    private String javaTypePackage; //java类型包名(java)
    private String javaField; //JAVA字段名
    private String upCamelField; //get开头的驼峰字段名
    private String isPk; //是否主键（1是）
    private String isIncrement; //是否自增（1是）
    private String isRequired; //是否必填（1是）
    private String isInsert; //是否为插入字段（1是）
    private String isEdit;//是否编辑字段（1是）
    private String isList; //是否列表字段（1是）
    private String isQuery; //是否查询字段（1是）
    //是否自动填充(1 是)，通用属性的自动填充，需代码配合（create_id、create_time、update_id、update_time）
    private String isAutofill;
    // 是否进行唯一校验(1 是)，字段唯一性校验
    private String isUniqueValid;
    private String autofillType; //自动填充类型(INSERT/UPDATE/INSERT_UPDATE)
    private String queryType; //查询方式（等于、不等于、大于、小于、范围）
    private String htmlType; //显示类型（文本框、文本域、下拉框、复选框、单选框、日期控件）
    private String dictType; //字典类型
    private String isLogicDel; //是否逻辑删除(逻辑删除标识字段)
    private String options; //其他设置
    private Integer sort; //排序

    private String createBy;
    private String updateBy;
    private Date createTime;
    private Date updateTime;

    private String isImport; //是否导入字段(1 是)
    private String isExport; //是否导出字段(1 是)

}
